﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using System.Data;
using QLTuyenXe.DAL;
using QLTuyenXe.DAO;

namespace QLTuyenXe.BLL
{
    class BHopDong
    {
        MyConnectUnit myConnU = new MyConnectUnit();
        //Đọc dữ liệu từ bảng
        public ArrayList Select(String columns, String condition, String order)
        {
            ArrayList a = new ArrayList();
            DataTable tb = new DataTable();
            tb = myConnU.Select("HOP_DONG", columns, condition, order);
            if (tb != null)
            {
                foreach (DataRow r in tb.Rows)
                {
                    HOPDONG obj = new HOPDONG();
                    obj.MaHD= r["maHD"].ToString();
                    //obj.DonviA = r["donviA"].ToString();
                    obj.DaidienA = r["daidienA"].ToString();
                    obj.ChucvuA = r["chucvuA"].ToString();
                    obj.DiachiA = r["diachiA"].ToString();
                    obj.DienthoaiA = r["dienthoaiA"].ToString();
                    obj.DonviB = r["donviB"].ToString();
                    obj.DaidienB = r["daidienB"].ToString();
                    obj.ChucvuB = r["chucvuB"].ToString();
                   obj.DiachiB = r["diachiB"].ToString();
                    obj.DienthoaiB = r["dienthoaiB"].ToString();
                    obj.Soluong = r["soluong"].ToString();
                    obj.Loai = r["loai"].ToString();
                    obj.Thoigianthue = r["thoigianthue"].ToString();
                    obj.Thoigiantra = r["thoigiantra"].ToString();
                    obj.Giathue = r["giathue"].ToString();
                    obj.Giabangchu = r["giabangchu"].ToString();
                    obj.Sotiendatcoc = r["sotiendatcoc"].ToString();
                    obj.Ngaylamhopdong = r["ngaylamhopdong"].ToString();
                    a.Add(obj);
                }
            }
            return a;
        }
        
        //Đọc dữ liệu từ bảng Doanh Thu trong CSDL
        public ArrayList Select(String columns, String condition)
        {
            return this.Select(columns, condition, null);
        }

        public ArrayList Select(String columns)
        {
            return this.Select(columns, null);
        }

        public ArrayList Select()
        {
            return this.Select("*");
        }

        public ArrayList SelectKH()
        {
            ArrayList a = new ArrayList();
            DataTable tb = new DataTable();
            tb = myConnU.Select_HD("HOP_DONG", "KHACH_HANG", "HOP_DONG.maKH", "KHACH_HANG.maKH");
            if (tb != null)
            {
                foreach (DataRow r in tb.Rows)
                {
                    HOPDONG obj = new HOPDONG();
                    obj.MaHD = r["maHD"].ToString();
                    //obj.DonviA = r["donviA"].ToString();
                    obj.DaidienA = r["daidienA"].ToString();
                    obj.ChucvuA = r["chucvuA"].ToString();
                    obj.DiachiA = r["diachiA"].ToString();
                    obj.DienthoaiA = r["dienthoaiA"].ToString();
                    obj.DonviB = r["donviB"].ToString();
                    obj.DaidienB = r["daidienB"].ToString();
                    obj.ChucvuB = r["chucvuB"].ToString();
                    obj.DiachiB = r["diachiB"].ToString();
                    obj.DienthoaiB = r["dienthoaiB"].ToString();
                    obj.Soluong = r["soluong"].ToString();
                    obj.Loai = r["loai"].ToString();
                    obj.Thoigianthue = r["thoigianthue"].ToString();
                    obj.Thoigiantra = r["thoigiantra"].ToString();
                    obj.Giathue = r["giathue"].ToString();
                    obj.Giabangchu = r["giabangchu"].ToString();
                    obj.Sotiendatcoc = r["sotiendatcoc"].ToString();
                    obj.Ngaylamhopdong = r["ngaylamhopdong"].ToString();
                    a.Add(obj);
                }
            }
            return a;
        }


        public ArrayList select1(String dk)
        {
            ArrayList a = new ArrayList();
            DataTable tb = new DataTable();
            tb = myConnU.Select("HOP_DONG", "KHACH_HANG", "HOP_DONG.maKH", "KHACH_HANG.maKH", dk);
            if (tb != null)
            {
                foreach (DataRow r in tb.Rows)
                {
                    HOPDONG obj = new HOPDONG();
                    obj.MaHD = r["maHD"].ToString();
                    obj.DaidienA = r["daidienA"].ToString();
                    obj.ChucvuA = r["chucvuA"].ToString();
                    obj.DiachiA = r["diachiA"].ToString();
                    obj.DienthoaiA = r["dienthoaiA"].ToString();
                    obj.DonviB = r["donviB"].ToString();
                    obj.DaidienB = r["daidienB"].ToString();
                    obj.ChucvuB = r["chucvuB"].ToString();
                   obj.DiachiB = r["diachiB"].ToString();
                    obj.DienthoaiB = r["dienthoaiB"].ToString();
                    obj.Soluong = r["soluong"].ToString();
                    obj.Loai = r["loai"].ToString();
                    obj.Thoigianthue = r["thoigianthue"].ToString();
                    obj.Thoigiantra = r["thoigiantra"].ToString();
                    obj.Giathue = r["giathue"].ToString();
                    obj.Giabangchu = r["giabangchu"].ToString();
                    obj.Sotiendatcoc = r["sotiendatcoc"].ToString();
                    obj.Ngaylamhopdong = r["ngaylamhopdong"].ToString();
                    a.Add(obj);
                }
            }
            return a;
        }
        //Thêm 1 chức vụ mới
       public int Insert(HOPDONG hopDong)
        {
            ColumnData maHD = new ColumnData("maHD", 1, hopDong.MaHD.ToString());
            ColumnData maCT = new ColumnData("maCT", 1, hopDong.MaCT.ToString());
            ColumnData daiDienA = new ColumnData("daidienA", 1, hopDong.DaidienA.ToString());
            ColumnData diaChiA = new ColumnData("diachiA", 1, hopDong.DiachiA.ToString());
            ColumnData chucVuA = new ColumnData("chucvuA", 1, hopDong.ChucvuA.ToString());
            ColumnData dienThoaiA = new ColumnData("dienthoaiA", 1, hopDong.DienthoaiA.ToString());
            ColumnData soLuong = new ColumnData("soluong", 1, hopDong.Soluong.ToString());
            ColumnData tenXe = new ColumnData("tenxe", 1, hopDong.TenXe.ToString());
            ColumnData loai = new ColumnData("loai", 1, hopDong.Loai.ToString());
            ColumnData thoiGianThue = new ColumnData("thoigianthue", 1, hopDong.Thoigianthue.ToString());
            ColumnData thoiGianTra = new ColumnData("thoigiantra", 1, hopDong.Thoigiantra.ToString());
            ColumnData giaThue = new ColumnData("giathue", 1, hopDong.Giathue.ToString());
            ColumnData giaBangChu = new ColumnData("giabangchu", 1, hopDong.Giabangchu.ToString());
            ColumnData soTienDatCoc = new ColumnData("sotiendatcoc", 1, hopDong.Sotiendatcoc.ToString());
            ColumnData ngayLamHopdong = new ColumnData("ngaylamhopdong", 1, hopDong.Ngaylamhopdong.ToString());
            ColumnData maKH = new ColumnData("maKH", 1, hopDong.MaKH.ToString());
           ArrayList ob = new ArrayList();
            ob.Add(maHD);
            ob.Add(maCT);
            ob.Add(daiDienA);
            ob.Add(chucVuA);
            ob.Add(diaChiA);
            ob.Add(dienThoaiA);         
            ob.Add(soLuong);
            ob.Add(tenXe);
            ob.Add(loai);
            ob.Add(thoiGianThue);
            ob.Add(thoiGianTra);
            ob.Add(giaThue);
            ob.Add(giaBangChu);
            ob.Add(soTienDatCoc);
            ob.Add(ngayLamHopdong);
            ob.Add(maKH);
            return myConnU.Insert("HOP_DONG", ob);
        }
        //Them vao 1 danh sach
        public int Insert(ArrayList f)
        {
            int count = 0;
            foreach (HOPDONG cv in f)
            {
                count += this.Insert(cv);
            }
            return count;
        }
      //Xoa chuc vu theo dieu kien
        public int Delete(String condition)
        {
            return myConnU.Delete("HOP_DONG", condition);
        }
        //Lay ma lon nhat
        public int GetMaxId()
        {
            return myConnU.GetMaxId("HOP_DONG", "maHD");
        }
//=============================================================================================
        //Hàm lấy giá trị lơn nhất (Mr.Tuyên K_54HTTT)
        public String getOrder()
        {
            string strID = myConnU.GetTopDataCell("HOP_DONG", "maHD");
            string strID1;
            string strID2;
            strID1 = strID.Substring(0, 2);
            strID2 = strID.Substring(2, 5);
            int autoNum = Convert.ToInt32(strID2) + 1;

            if (autoNum < 10)
                return strID1 + "0000" + autoNum;

            else if (autoNum >= 10 && autoNum < 100)
                return strID1 + "000" + autoNum;

            else if (autoNum >= 100 && autoNum < 1000)
                return strID1 + "00" + autoNum;
            else if (autoNum >= 1000 && autoNum < 10000)
                return strID1 + "0" + autoNum;
            else if (autoNum >= 10000 && autoNum < 100000)
                return strID1 + "" + autoNum;

            else
                return "";
        }

        //End hàm lấy giá trị lưn nhất (Mr.Tuyên K_54HTTT)
//=============================================================================================

//=================================================================================================
        //Hàm để load lên combobox(Mr.Tuyên K_54HTTT)
        public DataTable select_Combobox()
        {
            //ArrayList a = new ArrayList();
            DataTable tb = new DataTable();
            tb = myConnU.Select_ThuXem("GIA_THUE", "QUAN_LY_XE", "DIEU_HANH","soghe","giathue","tenxe","GIA_THUE.maxe", "QUAN_LY_XE.maxe", "DIEU_HANH.maxe", "trangthai='cho thuê'");
            return tb;
        }

        //End (Mr.Tuyên K_54HTTT)
//=================================================================================================
        public DataTable select_Combobox_KH()
        {
            //ArrayList a = new ArrayList();
            DataTable tb = new DataTable();
            tb = myConnU.SelectKH("KHACH_HANG");
            return tb;
        }
        //load lên ten kh, dia chi tho combobox kh
        public DataTable selectKH(string maKH, string tenKH)
        {
            //ArrayList a = new ArrayList();
            DataTable tb = new DataTable();
            tb = myConnU.SelectDN("KHACH_HANG", "maKH ='" + maKH + "'", "donviB=N'" + tenKH + "'");
            return tb;
            //end (Mr.Tuyen)
        }

//===========================================
        //Ham loa len conbox gia theo loai xe
        //Cai moi co ve on
        public DataTable select_Combobox_Gia(string tx, string loai)
        {
            //ArrayList a = new ArrayList();
            DataTable tb = new DataTable();
            tb = myConnU.Select_ThuXem2("GIA_THUE", "QUAN_LY_XE", "DIEU_HANH", "soghe", "giathue", "tenxe", "GIA_THUE.maxe", "QUAN_LY_XE.maxe", "DIEU_HANH.maxe", "trangthai='cho thuê'", "tenxe ='"+tx +"'" ,"soghe='" + loai +"'");
            return tb;
            //end (Mr.Tuyen)
        }
//===========================================

//===================================================================================================
        //Hàm load của combobox giá (Mr.Tuyên K_54HTTT)
        public ArrayList select_Combobox_gia()
        {
            ArrayList a = new ArrayList();
            DataTable tb = new DataTable();
            tb = myConnU.SelectGia("GIA_THUE", "QUAN_LY_XE", "DIEU_HANH", "GIA_THUE.maxe", "QUAN_LY_XE.maxe", "DIEU_HANH.maxe", "trangthai='cho thuê'");
            if (tb != null)
            {
                foreach (DataRow r in tb.Rows)
                {
                    THU obj = new THU();
                    obj.SoGhe = (r["soghe"].ToString());
                    a.Add(obj);
                }
            }
            return a;
        }

        //end (Mr.Tuyên K_54HTTT)
//===================================================================================================

//======================================================================================
        //Hàm load điều kiện khi khách hàng nhập số xe cần thuê (Mr.Tuyên K_54HTTT)
        public int select_DieuKien( string tenxe, string ghe)
        {
            string dk = myConnU.Select_DieuKien_HopDong("GIA_THUE", "QUAN_LY_XE", "DIEU_HANH", "GIA_THUE.maxe", "QUAN_LY_XE.maxe", "DIEU_HANH.maxe", "trangthai='cho thuê'","tenxe='"+ tenxe +"'", "soghe='"+ ghe +"'","soluong");
            int k = int.Parse(dk);
            return k;
        }

        //End (Mr.Tuyên K_54HTTT)
//=======================================================================================


//======================================================================================
        //Hàm load lay so xe vaf loai trong bang hop dong (Mr.Tuyên K_54HTTT)
        public int select_LX( string tenxe, string loai)
        {
            string dk = myConnU.SelectKT("HOP_DONG","tenxe='"+ tenxe +"'", "loai='"+ loai +"'","loai");
            return int.Parse(dk);
        }

        //End (Mr.Tuyên K_54HTTT)
//=======================================================================================
        //so xe trong th thứ 2: tính tổng số xe đã dc thuê
        public int select_LX1(string tenxe, string loai)
        {
            string dk = myConnU.SelectKT1("HOP_DONG", "tenxe='" + tenxe + "'", "loai='" + loai + "'", "loai");
            return int.Parse(dk);
        }

//========
        //Lay so xe da tra
        public int select_LX2(string tenxe, string loai, string thoigiantra)
        {
            string dk = myConnU.SelectKT1("HOP_DONG", "tenxe='" + tenxe + "'", "loai='" + loai + "'", "loai", "thoigiantra='" + thoigiantra + "'");
            return int.Parse(dk);
        }
        //lay ngay thue cua loai xe khach da nhap
        public DataTable select_TGThueXe(string tenxe, string loai)
        {
            
            DataTable tbTGThue = myConnU.SelectTG("HOP_DONG", "tenxe='" + tenxe + "'", "loai='" + loai + "'","thoigianthue","thoigiantra");
            return tbTGThue;
        }


    }
}
